home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-03-31 | 9.0 KB | 303 lines |
- 10 'LM317 - LM317 specifications - 11 JUN 90 rev. 30 MAR 97
- 20 COMMON EX$,PROG$,R
- 30 IF EX$=""THEN EX$="EXIT"
- 40 IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
- 50 IF EO THEN 60 ELSE 80 'EO & OV chained from another program
- 60 V=INT(EO*10)/10:FLAG=1 'input voltage
- 70 VO=INT(OV*10)/10 'output voltage
- 80 COLOR 7,0,1
- 90 CLS:KEY OFF
- 100 UL$=STRING$(80,205)
- 110 U$="###,###.##"
- 120 U1$="####.##"
- 130 V$="##.##"
- 140 DIM R(18),RS(24) 'standard resistors
- 150 '.....standard resistor values
- 160 DATA 10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47
- 170 DATA 51,56,62,68,75,82,91
- 180 FOR Z=1 TO 17:READ E:R(Z)=E*10:NEXT Z 'data for R3
- 190 Q=0
- 200 FOR Y=1 TO 17 STEP 2:Q=Q+1:R(Q)=R(Y):NEXT Y
- 210 RESTORE
- 220 FOR Z=1 TO 24:READ RS(Z):NEXT Z 'standard resistors
- 230 '
- 240 T$=" LM317 VOLTAGE REGULATOR"+STRING$(32,32)+"by George Murphy VE3ERP "
- 250 COLOR 15,2:PRINT T$;
- 260 COLOR 1,0:PRINT STRING$(80,"<0xDF!>");
- 270 COLOR 7,0
- 280 IF V*VO THEN RO=3:CO=32:GOSUB 2050:GOTO 480
- 290 '
- 300 '.....start
- 310 RO=3:CO=32:GOSUB 2050 'print diagram
- 320 PRINT UL$;
- 330 PRINT " Press number in < > to:
- 340 PRINT UL$;
- 350 PRINT " < 1 > RUN program";
- 360 IF V*VO THEN PRINT " with new input/output voltages" ELSE PRINT ""
- 370 IF V*VO=0 THEN 400
- 380 PRINT " < 2 > RE-RUN program with existing input/output voltages"
- 390 PRINT UL$;
- 400 PRINT " < 0 > EXIT"
- 410 IF V*VO=0 THEN PRINT UL$;
- 420 Z$=INKEY$
- 430 IF Z$="0"THEN CLS:CHAIN GO$
- 440 IF Z$="1"THEN V=0:VO=0:GOTO 480
- 450 IF Z$="2"THEN 480
- 460 GOTO 420
- 470 '
- 480 VIEW PRINT 11 TO 24:CLS:VIEW PRINT:LOCATE 11
- 490 R3=0:R4=0
- 500 IF V=0 THEN 530
- 510 LOCATE 4:PRINT " Input voltage =";V;"volts DC"
- 520 LOCATE 4,50:PRINT " Output voltage =";VO;"volts DC"
- 530 LOCATE 11
- 540 GOSUB 2220 'text
- 550 GOSUB 2900
- 560 '
- 570 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 580 FOR Z=32 TO 62:RO=3:CO=Z:GOSUB 2050:NEXT Z 'move diagram
- 590 CEI=1
- 600 IF V THEN 800
- 610 LOCATE 3
- 620 INPUT " ENTER: Input voltage (minimum 3.7)............";V
- 630 IF V<3.7 THEN V=0:VIEW PRINT:GOTO 570
- 640 RO=3:CO=62
- 650 CEO=1:GOSUB 2050 'print diagram
- 660 LOCATE 4
- 670 INPUT " ENTER: Output voltage ........................";VO
- 680 IF VO>V THEN LOCATE CSRLIN-1:PRINT STRING$(50,32):GOTO 660
- 690 IF VO>0 THEN 710
- 700 LOCATE CSRLIN-1:PRINT STRING$(50,32):LOCATE CSRLIN-1:GOTO 670
- 710 IF V-VO<=40 THEN 800
- 720 '
- 730 '.....differential exceeds minimum
- 740 COLOR 15,0
- 750 PRINT " Exceeds maximum allowable input/output differential of 40 volts "
- 760 COLOR 7,0:V=0:GOSUB 2900
- 770 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 780 GOTO 300
- 790 '
- 800 IF R3 THEN 940
- 810 CR3=1:GOSUB 2050 'print diagram
- 820 LOCATE 11,61:PRINT "Std. Resistor Values";
- 830 LOCATE 12,61:PRINT STRING$(20,196)
- 840 FOR Z=13 TO 21:LOCATE Z,68:PRINT R(Z-12);"ohms":NEXT Z
- 850 LOCATE 13,66:PRINT "VARPTR"
- 860 FOR Z=14 TO 20:LOCATE Z,66:PRINT "BLOAD":NEXT Z
- 870 LOCATE 21,66:PRINT "CLS"
- 880 LOCATE 17
- 890 PRINT " Pick any one of these resistors for your initial calculation:SOUNDSOUNDSOUNDBEEP"
- 900 PRINT " If you wish to change the configuration resulting from your"
- 910 PRINT " choice, you may re-run the program and pick another resistor."
- 920 LOCATE 5:INPUT " ENTER: Value of R3 (suggested range 100-470)..";R3
- 930 R4=R3*(VO/1.25-1)
- 940 FOR Z=11 TO 21:LOCATE Z,60:PRINT STRING$(21,32);:NEXT Z
- 950 '
- 960 '.....screen display
- 970 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 980 CEI=1:CR3=1:CR4=1:CEO=1
- 990 GOSUB 2050 'diagram
- 1000 LOCATE 4
- 1010 I3=1.25/R3*1000 'current in mA. thru R3
- 1020 I4=I3+0.1 'current in mA. thru R4
- 1030 PRINT TAB(8);"Input voltage....................";USING U$;V;
- 1040 PRINT " volts"
- 1050 PRINT TAB(8);"Sought Output voltage............";USING U$;VO;
- 1060 PRINT " volts"
- 1070 DV=V-2.5 'dropout voltage
- 1080 PRINT TAB(8);"Dropout voltage..................";USING U$;DV;
- 1090 PRINT " volts"
- 1100 PRINT TAB(8);"Value of R3......................";USING U$;R3;
- 1110 PRINT " ohms"
- 1120 IF R3>=100 AND R3<=470 THEN 1160
- 1130 COLOR 0,7
- 1140 LOCATE 7,19:PRINT " (100-470 recommended)"
- 1150 COLOR 7,0
- 1160 PRINT TAB(8);"Current thru R3..................";USING U$;I3;
- 1170 PRINT " mA."
- 1180 PRINT TAB(8);"Current thru R4..................";USING U$;I4;
- 1190 PRINT " mA."
- 1200 PRINT SPC(6);:COLOR 0,7:PRINT " Value of R4:"
- 1210 '
- 1220 M=1 'multiplier
- 1230 FOR X=1 TO 24
- 1240 Y=RS(X)*M
- 1250 IF Y<R4 THEN LO=Y:GOTO 1270
- 1260 HI=Y:GOTO 1440
- 1270 NEXT X
- 1280 M=M*10:GOTO 1230
- 1290 '
- 1300 '.....R4 display subroutine
- 1310 OLDVO=VO
- 1320 VO=1.25*(1+R/R3):E=VO
- 1330 IF V-VO<2.5 THEN E=V-2.5 '2.5v. differential = dropout voltage
- 1340 PRINT " ";R$;TAB(19);USING U$;R;:PRINT " ohms = output of";USING U1$;E;
- 1350 PRINT " volts "
- 1360 '
- 1370 IF V-VO>=2.5 THEN 1400
- 1380 COLOR 0,7:LOCATE CSRLIN-1,57
- 1390 PRINT " UNREGULATED (Dropout)"
- 1400 COLOR 7,0
- 1410 VO=OLDVO
- 1420 RETURN
- 1430 '
- 1440 '.....display R4
- 1450 R$="Standard resistor":R=LO:COLOR 0,7:GOSUB 1300
- 1460 R$="Exact resistance":R=R4:COLOR 15,3:GOSUB 1300
- 1470 R$="Standard resistor":R=HI:COLOR 0,7:GOSUB 1300
- 1480 PRINT UL$;
- 1490 POTFLAG=0
- 1500 PRINT " Resistors of";LO;"or";HI;"ohms will provide outputs as shown, or"
- 1510 PRINT " you can assemble a precision resistor very close to";R4;"ohms,"
- 1520 PRINT " or you can use a potentiometer for R4."
- 1530 PRINT UL$;
- 1540 PRINT " Press number in < > to:"
- 1550 PRINT UL$;
- 1560 PRINT " < 1 > Assemble a precision resistor for R4"
- 1570 PRINT " < 2 > Use a potentiometer for R4"
- 1580 PRINT " < 3 > Select a standard resistor for R4"
- 1590 PRINT " < 4 > Return to Menu";
- 1600 Z$=INKEY$:IF Z$=""THEN 1600
- 1610 IF Z$="1" THEN VOUT=VO:GOSUB 2500:R=R4:CLS:CHAIN "precires"
- 1620 IF Z$="2" THEN 1710
- 1630 IF Z$="3" THEN 1660
- 1640 IF Z$="4" THEN VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:GOTO 300
- 1650 GOTO 1600
- 1660 VIEW PRINT 19 TO 24:CLS:VIEW PRINT:LOCATE 19
- 1670 INPUT " ENTER: Your choice of value for R4 (ohms)....";R4
- 1680 VOUT=1.25*(1+R4/R3)
- 1690 GOSUB 2500:GOTO 300
- 1700 '
- 1710 VIEW PRINT 19 TO 24:CLS:VIEW PRINT
- 1720 POTFLAG=1
- 1730 COLOR 0,7
- 1740 LOCATE RO+4,CO+7:PRINT "BLOAD"
- 1750 LOCATE RO+5,CO+7:PRINT "CLSSOUNDSOUNDDEFDBL"
- 1760 LOCATE 19:COLOR 15,3
- 1770 PRINT" ENTER: Value (ohms) of a LINEAR pot greater than";R4;"ohms";
- 1780 INPUT POT
- 1790 COLOR 7,0
- 1800 FOR Z=8 TO 9:LOCATE Z:PRINT STRING$(55,32):NEXT Z
- 1810 FOR Z=11 TO 19:LOCATE Z:PRINT STRING$(80,32);:NEXT Z
- 1820 LOCATE 11
- 1830 COLOR 0,7
- 1840 PRINT USING "####,###";POT;:PRINT " ohm LINEAR potentiometer:"
- 1850 '
- 1860 COLOR 7,0 'display potentiomenter values
- 1870 FOR Z=1 TO 10
- 1880 R=POT*Z/10:R$=""
- 1890 IF R4>=R OR R4<=POT*(Z-1)/10 THEN 1950
- 1900 '
- 1910 COLOR 15,3
- 1920 PRINT " @";USING "####.#";R4/POT*100;:PRINT "% open =";
- 1930 Q=R:R=R4:GOSUB 1300:R=Q:GOTO 1960
- 1940 '
- 1950 IF R=R4 THEN COLOR 0,7
- 1960 IF Z=10 THEN R=POT
- 1970 PRINT " @";USING "####.#";Z*10;:PRINT "% open =";
- 1980 GOSUB 1300
- 1990 NEXT Z
- 2000 PRINT UL$;
- 2010 GOSUB 2900
- 2020 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 2030 VOUT=VO:GOSUB 2500:GOTO 300
- 2040 '
- 2050 '.....diagram
- 2060 COLOR 0,7
- 2070 LOCATE RO+0,CO:PRINT "CSRLIN LM317 "
- 2080 LOCATE RO+1,CO:PRINT "CSRLIN inVARPTRSOUNDSOUNDSOUNDCOLORout "
- 2090 LOCATE RO+2,CO:PRINT "CSRLIN + SOUND<0xB4!> BLOADSOUNDBSAVESOUNDSOUND + "
- 2100 LOCATE RO+3,CO:PRINT "CSRLIN CLSSOUNDBSAVESOUND' R3 "
- 2110 LOCATE RO+4,CO:PRINT "CSRLIN adjCLSSOUNDSOUNDSOUND<0xB4!> "
- 2120 LOCATE RO+5,CO:PRINT "CSRLIN R4 "
- 2130 LOCATE RO+6,CO:PRINT "CSRLIN - SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUND - "
- 2140 IF CEI THEN COLOR 14,6:LOCATE RO+2,CO+2:PRINT"+"
- 2150 IF CR3 THEN COLOR 14,6:LOCATE RO+3,CO+11:PRINT"R3"
- 2160 IF CR4 THEN COLOR 14,6:LOCATE RO+5,CO+11:PRINT"R4"
- 2170 IF CEO THEN COLOR 14,6:LOCATE RO+2,CO+15:PRINT"+"
- 2180 CEI=0:CR3=0:CR4=0:CEO=0
- 2190 COLOR 7,0
- 2200 RETURN
- 2210 '
- 2220 '.....text block
- 2230 TB=8 'tab for text
- 2240 PRINT TAB(TB);
- 2250 PRINT " The LM317 is a floating regulator and sees only the input-to-"
- 2260 PRINT TAB(TB);
- 2270 PRINT "output differential voltages, therefore power supplies of several"
- 2280 PRINT TAB(TB);
- 2290 PRINT "hundred volts can be regulated as long as the maximum input-to-"
- 2300 PRINT TAB(TB);
- 2310 PRINT "output differential of 40 volts is not exceeded."
- 2320 PRINT TAB(TB);
- 2330 PRINT " Most manufacturers recommend by-passing the input and output"
- 2340 PRINT TAB(TB);
- 2350 PRINT "leads with 1 >F tantalum capacitors soldered directly to the leads"
- 2360 PRINT TAB(TB);
- 2370 PRINT "as close as possible to the points where the leads project through"
- 2380 PRINT TAB(TB);
- 2390 PRINT "the heat sink."
- 2400 PRINT TAB(TB);
- 2410 PRINT " The current carrying capacity of the LM317 is 1.5 amperes. If"
- 2420 PRINT TAB(TB);
- 2430 PRINT "this current is not sufficient to operate the load a power"
- 2440 PRINT TAB(TB);
- 2450 PRINT "transistor may be added to increase the current handling"
- 2460 PRINT TAB(TB);
- 2470 PRINT "capability."
- 2480 RETURN
- 2490 '
- 2500 '.....practical circuits
- 2510 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 2,22
- 2520 GOSUB 2560:GOSUB 2900
- 2530 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 2540 RETURN
- 2550 '
- 2560 '.....diagram
- 2570 LOCATE 3:K=14
- 2580 LOCATE ,K:PRINT" TYPICAL LM317 APPLICATIONS "
- 2590 COLOR 0,7
- 2600 LOCATE ,K:PRINT" CSRLINCSRLIN VARPTRSOUNDPNP power transistor "
- 2610 LOCATE ,K:PRINT" CSRLINCSRLIN CLSSOUNDDEFDBLVARPTRSOUNDSOUNDSOUNDCOLOR "
- 2620 LOCATE ,K:PRINT" CSRLINCSRLIN VARPTRSOUNDSOUND<0xB4!>e cBLOADSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR "
- 2630 LOCATE ,K:PRINT" CSRLINCSRLIN CALL CALL b CALL CALL "
- 2640 LOCATE ,K:PRINT" Vin VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR Vout CSRLINCSRLIN Vin CALL CLSSOUNDBSAVESOUND'VARPTRSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR CALL Vout "
- 2650 LOCATE ,K:PRINT" SOUNDSOUNDSOUNDBSAVE<0xB4!>LM317BLOADBSAVESOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUND CSRLINCSRLIN SOUNDSOUNDSOUNDSOUNDMOTORSOUNDR5SOUNDMOTORSOUNDBSAVE<0xB4!>LM317BLOADBSAVESOUNDMOTORSOUNDBSAVESOUNDSOUNDSOUNDSOUND "
- 2660 LOCATE ,K:PRINT" CALLCLSSOUNDSOUNDBSAVESOUNDSOUND'CALL CALL I-DEFDBL CSRLINCSRLIN 330- CALLCLSSOUNDSOUNDBSAVESOUNDSOUND'CALL CALL ISOUNDDEFDBL "
- 2670 LOCATE ,K:PRINT" C2 CALL C3 R3 CSRLINCSRLIN C2 CALL C3 R3 "
- 2680 LOCATE ,K:PRINT" CALL CLSSOUNDSOUNDSOUNDCALLSOUNDSOUNDSOUND<0xB4!> CSRLINCSRLIN CALL CLSSOUNDSOUNDSOUNDCALLSOUNDSOUNDSOUND<0xB4!> "
- 2690 LOCATE ,K:PRINT" CALL CALL R4 CSRLINCSRLIN CALL CALL R4 "
- 2700 LOCATE ,K:PRINT" CALL CALL CALL CSRLINCSRLIN CALL CALL CALL "
- 2710 LOCATE ,K:PRINT" \\MOTOR\\ \\MOTOR\\\MOTOR\\ CSRLINCSRLIN \\MOTOR\\ \\MOTOR\\\MOTOR\\ "
- 2720 LOCATE ,K:PRINT" CSRLINCSRLIN "
- 2730 LOCATE ,K:PRINT" CURRENT I <= 1.5 A. CSRLINCSRLIN CURRENT I > 1.5 A. "
- 2740 IF POTFLAG=0 THEN 2790
- 2750 LOCATE CSRLIN-6,K
- 2760 PRINT " CALL CLSSOUNDSOUNDSOUNDCALLSOUNDBSAVESOUND<0xB4!> CSRLINCSRLIN CALL CLSSOUNDSOUNDSOUNDCALLSOUNDBSAVESOUND<0xB4!> "
- 2770 LOCATE ,K:PRINT" CALL CALL CLSDEFDBLR4 CSRLINCSRLIN CALL CALL CLSDEFDBLR4 "
- 2780 LOCATE CSRLIN+4
- 2790 COLOR 7,0:T=30
- 2800 PRINT TAB(16);"C2, C3 = 1.0 >F/50v Tantalum RF by-pass capacitors"
- 2810 PRINT TAB(T);"Vin =";USING U$;V;:PRINT " volts"
- 2820 PRINT TAB(T);"Vout =";USING U$;VOUT;:PRINT " volts"
- 2830 PRINT TAB(T);"R3 =";USING U$;R3;:PRINT " -"
- 2840 PRINT TAB(T);"R4 =";USING U$;R4;:PRINT " -";
- 2850 IF POTFLAG=0 THEN PRINT "":GOTO 2870
- 2860 PRINT " (";POT;"- potentiometer) "
- 2870 PRINT TAB(16);"Mount the LM317 and the transistor on heat sinks."
- 2880 RETURN
- 2890 '
- 2900 'HARDCOPY
- 2910 GOSUB 3020:LOCATE 25,2:COLOR 14,6
- 2920 PRINT " Press 1 to print screen, 2 to print screen & ";
- 2930 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 2940 Z$=INKEY$:IF Z$="3"THEN GOSUB 3020:RETURN
- 2950 IF Z$="1"OR Z$="2"THEN GOSUB 3020:GOTO 2970
- 2960 GOTO 2940
- 2970 FOR QX=1 TO 24:FOR QY=1 TO 80
- 2980 LPRINT CHR$(SCREEN(QX,QY));
- 2990 NEXT QY:NEXT QX
- 3000 IF Z$="2"THEN LPRINT CHR$(12)
- 3010 GOTO 2910
- 3020 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-